package com.yuelife.service.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.yuelife.service.dao.SStoreMapper;
import com.yuelife.service.pojo.SStore;
import com.yuelife.service.service.SStoreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import tk.mybatis.mapper.entity.Example;

import java.util.List;

/****
 * @Author:admin
 * @Description:SStore业务层接口实现类
 * @Date 2019/6/14 0:16
 *****/
@Service
public class SStoreServiceImpl implements SStoreService {

    @Autowired
    private SStoreMapper sStoreMapper;


    /**
     * SStore条件+分页查询
     * @param sStore 查询条件
     * @param page 页码
     * @param size 页大小
     * @return 分页结果
     */
    @Override
    public PageInfo<SStore> findPage(SStore sStore, int page, int size){
        //分页
        PageHelper.startPage(page,size);
        //搜索条件构建
        Example example = createExample(sStore);
        //执行搜索
        return new PageInfo<SStore>(sStoreMapper.selectByExample(example));
    }

    /**
     * SStore分页查询
     * @param page
     * @param size
     * @return
     */
    @Override
    public PageInfo<SStore> findPage(int page, int size){
        //静态分页
        PageHelper.startPage(page,size);
        //分页查询
        return new PageInfo<SStore>(sStoreMapper.selectAll());
    }

    /**
     * SStore条件查询
     * @param sStore
     * @return
     */
    @Override
    public List<SStore> findList(SStore sStore){
        //构建查询条件
        Example example = createExample(sStore);
        //根据构建的条件查询数据
        return sStoreMapper.selectByExample(example);
    }


    /**
     * SStore构建查询对象
     * @param sStore
     * @return
     */
    public Example createExample(SStore sStore){
        Example example=new Example(SStore.class);
        Example.Criteria criteria = example.createCriteria();
        if(sStore!=null){
            // 商家主键(自增长)
            if(!StringUtils.isEmpty(sStore.getStoreId())){
                    criteria.andEqualTo("storeId",sStore.getStoreId());
            }
            // 密码
            if(!StringUtils.isEmpty(sStore.getStorePassword())){
                    criteria.andEqualTo("storePassword",sStore.getStorePassword());
            }
            // 店家手机
            if(!StringUtils.isEmpty(sStore.getStoreTellphone())){
                    criteria.andEqualTo("storeTellphone",sStore.getStoreTellphone());
            }
            // 店铺名称
            if(!StringUtils.isEmpty(sStore.getStoreName())){
                    criteria.andEqualTo("storeName",sStore.getStoreName());
            }
            // 
            if(!StringUtils.isEmpty(sStore.getStoreType())){
                    criteria.andEqualTo("storeType",sStore.getStoreType());
            }
            // 店铺座机
            if(!StringUtils.isEmpty(sStore.getStorePhone())){
                    criteria.andEqualTo("storePhone",sStore.getStorePhone());
            }
            // 
            if(!StringUtils.isEmpty(sStore.getStoreAddress())){
                    criteria.andEqualTo("storeAddress",sStore.getStoreAddress());
            }
            // 店铺今日是否营业
            if(!StringUtils.isEmpty(sStore.getStoreOnline())){
                    criteria.andEqualTo("storeOnline",sStore.getStoreOnline());
            }
            // 店铺是否上线
            if(!StringUtils.isEmpty(sStore.getStoreStatus())){
                    criteria.andEqualTo("storeStatus",sStore.getStoreStatus());
            }
            // 评分
            if(!StringUtils.isEmpty(sStore.getStoreScore())){
                    criteria.andEqualTo("storeScore",sStore.getStoreScore());
            }
            // 结算银行
            if(!StringUtils.isEmpty(sStore.getStoreBank())){
                    criteria.andEqualTo("storeBank",sStore.getStoreBank());
            }
            // 支行名称
            if(!StringUtils.isEmpty(sStore.getStoreBankName())){
                    criteria.andEqualTo("storeBankName",sStore.getStoreBankName());
            }
            // 银行账号
            if(!StringUtils.isEmpty(sStore.getSBAccount())){
                    criteria.andEqualTo("sBAccount",sStore.getSBAccount());
            }
            // 建立时间
            if(!StringUtils.isEmpty(sStore.getStoreCreatetime())){
                    criteria.andEqualTo("storeCreatetime",sStore.getStoreCreatetime());
            }
            // 所属城市id
            if(!StringUtils.isEmpty(sStore.getCityId())){
                    criteria.andEqualTo("cityId",sStore.getCityId());
            }
            // 所属省id
            if(!StringUtils.isEmpty(sStore.getProvinceId())){
                    criteria.andEqualTo("provinceId",sStore.getProvinceId());
            }
            // 商圈
            if(!StringUtils.isEmpty(sStore.getCirclessName())){
                    criteria.andEqualTo("circlessName",sStore.getCirclessName());
            }
            // 优惠活动
            if(!StringUtils.isEmpty(sStore.getActivities())){
                    criteria.andEqualTo("activities",sStore.getActivities());
            }
            // 商家服务
            if(!StringUtils.isEmpty(sStore.getStoreservice())){
                    criteria.andEqualTo("storeservice",sStore.getStoreservice());
            }
            // 城市名称
            if(!StringUtils.isEmpty(sStore.getCityName())){
                    criteria.andEqualTo("cityName",sStore.getCityName());
            }
            // 省份
            if(!StringUtils.isEmpty(sStore.getProvinceName())){
                    criteria.andEqualTo("provinceName",sStore.getProvinceName());
            }
            // 人均
            if(!StringUtils.isEmpty(sStore.getCapita())){
                    criteria.andEqualTo("capita",sStore.getCapita());
            }
            // 月售
            if(!StringUtils.isEmpty(sStore.getSalenum())){
                    criteria.andEqualTo("salenum",sStore.getSalenum());
            }
            // 距离
            if(!StringUtils.isEmpty(sStore.getDistance())){
                    criteria.andEqualTo("distance",sStore.getDistance());
            }
            // 图片
            if(!StringUtils.isEmpty(sStore.getImg())){
                    criteria.andEqualTo("img",sStore.getImg());
            }
            // 营业开始时间
            if(!StringUtils.isEmpty(sStore.getStarttimes())){
                    criteria.andEqualTo("starttimes",sStore.getStarttimes());
            }
            // 营业结束时间
            if(!StringUtils.isEmpty(sStore.getEndtimes())){
                    criteria.andEqualTo("endtimes",sStore.getEndtimes());
            }
            // 收藏数
            if(!StringUtils.isEmpty(sStore.getLikess())){
                    criteria.andEqualTo("likess",sStore.getLikess());
            }
        }
        return example;
    }

    /**
     * 删除
     * @param id
     */
    @Override
    public void delete(Integer id){
        sStoreMapper.deleteByPrimaryKey(id);
    }

    /**
     * 修改SStore
     * @param sStore
     */
    @Override
    public void update(SStore sStore){
        sStoreMapper.updateByPrimaryKey(sStore);
    }

    /**
     * 增加SStore
     * @param sStore
     */
    @Override
    public void add(SStore sStore){
        sStoreMapper.insert(sStore);
    }

    /**
     * 根据ID查询SStore
     * @param id
     * @return
     */
    @Override
    public SStore findById(Integer id){
        return  sStoreMapper.selectByPrimaryKey(id);
    }

    /**
     * 查询SStore全部数据
     * @return
     */
    @Override
    public List<SStore> findAll() {
        return sStoreMapper.selectAll();
    }

    @Override
    public SStore findbystoreTellphone(String storeTellphone) {
        return sStoreMapper.findbystoreTellphone(storeTellphone);
    }

    @Override
    public SStore findbyTellandpassword(String storeTellphone, String storePassword) {
        return sStoreMapper.findbyTellandpassword(storeTellphone,storePassword);
    }

    @Override
    public List<SStore> findbycondition(SStore sStore) {
        return sStoreMapper.findbycondition(sStore);
    }
}
